package com.stark.wechat.service.draft.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 草稿详情
 *
 * @author <a href="mengbin@eastsoft.com.cn">Ben</a>
 * @version 1.0.0
 * @since 2025/8/6
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Draft implements Serializable {

    private static final long serialVersionUID = -6615114782478595781L;

    /**
     * 图文素材列表
     */
    @JsonProperty("news_item")
    private List<NewsItem> newsItem = new ArrayList<>();

    /**
     * 图文素材
     */
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class NewsItem implements Serializable {

        private static final long serialVersionUID = 8616680771256864065L;

        /**
         * 文章类型，分别有图文消息（news）、图片消息（newspic），不填默认为图文消息（news）
         */
        @JsonProperty("article_type")
        private ArticleType articleType;

        /**
         * 标题
         */
        private String title;

        /**
         * 作者
         */
        private String author;

        /**
         * 图文消息的摘要，仅有单图文消息才有摘要，多图文此处为空。如果本字段为没有填写，则默认抓取正文前54个字。
         */
        private String digest;

        /**
         * 图文消息的具体内容，支持HTML标签，必须少于2万字符，小于1M，且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。 图片消息则仅支持纯文本和部分特殊功能标签如商品，商品个数不可超过50个
         */
        private String content;

        /**
         * 图文消息的原文地址，即点击“阅读原文”后的URL
         */
        @JsonProperty("content_source_url")
        private String contentSourceUrl;

        /**
         * 图文消息的封面图片素材id（必须是永久MediaID）
         */
        @JsonProperty("thumb_media_id")
        private String thumbMediaId;

        /**
         * 是否显示封面，0为false，即不显示，1为true，即显示
         */
        @JsonProperty("show_cover_pic")
        private Integer showCoverPic;

        /**
         * 是否打开评论，0不打开(默认)，1打开
         */
        @JsonProperty("need_open_comment")
        private Integer needOpenComment;

        /**
         * 是否粉丝才可评论，0所有人可评论(默认)，1粉丝才可评论
         */
        @JsonProperty("only_fans_can_comment")
        private Integer onlyFansCanComment;

        /**
         * 图片消息里的图片相关信息，图片数量最多为20张，首张图片即为封面图
         */
        @JsonProperty("image_info")
        private ImageInfo imageInfo;

        /**
         * 商品信息
         */
        @JsonProperty("product_info")
        private ProductInfo productInfo;

        /**
         * 草稿的临时链接
         */
        private String url;

    }

}
